<?php
/**
 * Created by PhpStorm.
 * Author: ljz
 * Date: 2023/5/16
 * Time: 14:33
 */

namespace App\backend\models;


use App\common\models\BaseModel;
use Illuminate\Support\Facades\DB;

/**
 * Class AdminRoleUsersModel
 * @package app\backend\models
 */
class MenuModel extends BaseModel
{
    const table = 'admin_menu';
    const status = 0;

    public function __construct() {

    }

    /**
     * 添加/编辑 字段规则
     *
     * @return array
     */
    static public function modify_rules()
    {
        return [
            'title' => 'required|string', // 菜单名称
            'icon' => 'required|string', // 菜单图标
        ];
    }

    /**
     * 详情 字段规则
     *
     * @return array
     */
    static public function update_rules()
    {
        return [
            'menu_id' => 'required|integer', // 菜单ID
        ];
    }

    /**
     * 字段验证返回错误信息
     *
     * @return array
     */
    static public function message()
    {
        return [
            'menu_id.required' => '菜单ID不能为空',
            'menu_id.integer' => '菜单ID数据类型有误',
            'title.required' => '菜单名称不能为空',
            'icon.required' => '菜单图标不能为空',
        ];
    }

    /**
     * 数据库 - 查询角色列表
     * @param $where_data array //查询条件 参数数组
     * @param $select array //select 查询参数
     * @return array
     */
    static public function listed($where_data = [], $select = ['*'])
    {
        $query = DB::table(self::table)
            ->select($select)
            ->where('status', '=',self::status)
            ->where($where_data);

        $data = $query->get()->toArray();
        return $data;
    }

    /**
     * 数据库 - 更新数据
     * @param $whereData // 查询条件
     * @param $data //参数数组
     * @return array
     */
    static public function updatedData($whereData, $data)
    {
        $data = DB::table(self::table)
            ->where($whereData)
            ->update($data);

        return $data;
    }

    /**
     * 数据库 - 插入数据
     * @param $data //参数数组
     * @return array
     */
    static public function insertGetIdData($data)
    {
        $data = DB::table(self::table)->insertGetId($data);
        return $data;
    }

    /**
     * 数据库 - 查询角色详情
     * @param $where_data array //查询条件 参数数组
     * @param $select array //查询条件 参数数组
     * @return array
     */
    static public function info($where_data = [], $select = ['*'])
    {
        $data = DB::table(self::table)->select($select)->where($where_data)->first();
        return $data;
    }

}
